package com.ly.heart.domain;

import com.baomidou.mybatisplus.annotation.*;
import com.ly.common.core.domain.BaseVo;
import lombok.Data;
import com.ly.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.util.Date;

/**
 * BOM清单对象 erp_king_bom_info
 *
 * @author wutao
 * @date 2024-07-26
 */
@TableName ( "erp_king_bom_info" )
@ApiModel ( value = "erp_king_bom_info对象", description = "BOM清单" )
@Data
public class KingBomEntity extends BaseVo {
    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @TableId ( value = "id", type = IdType.INPUT )
    private String id;

    /**
     * 创建组织
     */
    @ApiModelProperty ( "创建组织" )
    @TableField ( "create_dept_id" )
    @Excel ( name = "创建组织" )
    private String createDeptId;

    /**
     * BOM版本，自动生成
     */
    @ApiModelProperty ( "BOM版本，自动生成" )
    @TableField ( "bom_version" )
    @Excel ( name = "BOM版本，自动生成" )
    private String bomVersion;

    /**
     * BOM简称
     */
    @ApiModelProperty ( "BOM简称" )
    @TableField ( "bom_as" )
    @Excel ( name = "BOM简称" )
    private String bomAs;

    /**
     * 单据类型编码
     */
    @ApiModelProperty ( "单据类型编码" )
    @TableField ( "doc_type_code" )
    @Excel ( name = "单据类型编码" )
    private String docTypeCode;

    /**
     * 父项物料编码
     */
    @ApiModelProperty ( "父项物料编码" )
    @TableField ( "parent_material_code" )
    @Excel ( name = "父项物料编码" )
    private String parentMaterialCode;

    /**
     * 父项物料单位
     */
    @ApiModelProperty ( "父项物料单位" )
    @TableField ( "parent_material_unit" )
    @Excel ( name = "父项物料单位" )
    private String parentMaterialUnit;

    /**
     * BOM分类
     */
    @ApiModelProperty ( "BOM分类；\n" +
            "1：标准BOM；\n" +
            "2：配置BOM；" )
    @TableField ( "bom_classify" )
    @Excel ( name = "BOM分类" )
    private String bomClassify;

    /**
     * BOM用途
     */
    @ApiModelProperty ( "BOM用途；\n" +
            "99：通用；\n" +
            "2：自制；\n" +
            "3：委外；\n" +
            "4：组装；\n" +
            "5：报价" )
    @TableField ( "bom_use_to" )
    @Excel ( name = "BOM用途" )
    private String bomUseTo;

    /**
     * BOM分组
     */
    @ApiModelProperty ( "BOM分组" )
    @TableField ( "bom_group" )
    @Excel ( name = "BOM分组" )
    private String bomGroup;

    /**
     * 是否变更中
     */
    @ApiModelProperty ( "是否变更中" )
    @TableField ( "is_change" )
    @Excel ( name = "是否变更中" )
    private String isChange;

    /**
     * 描述
     */
    @ApiModelProperty ( "描述" )
    @TableField ( "bom_desc" )
    @Excel ( name = "描述" )
    private String bomDesc;

    /** 流程状态 */
    @ApiModelProperty ("流程状态")
    @TableField ("state")
    @Excel (name = "流程状态")
    private String state;

    @ApiModelProperty ("流程实例id")
    @TableField ("instance_id")
    private String instanceId;

    @ApiModelProperty ("创建人")
    @TableField ("create_user_id")
    private String createUserId;

    @ApiModelProperty ("创建时间")
    @TableField ("create_date")
    private Date createDate;

    @ApiModelProperty ("修改人")
    @TableField ("update_user_id")
    private String updateUserId;

    @ApiModelProperty ("修改时间")
    @TableField ("update_date")
    private Date updateDate;

    /**
     * 是否可用
     */
    @ApiModelProperty ( "是否可用" )
    @TableField ( "is_used" )
    @Excel ( name = "是否可用" )
    @TableLogic
    private Integer isUsed;

    @ApiModelProperty ("业务type")
    @TableField (exist = false)
    private String businessType;

    @ApiModelProperty ("流程模型id")
    @TableField (exist = false)
    private String modelId;

    @ApiModelProperty ( "子项物料编码" )
    @TableField ( exist = false )
    private String chilMaterialCode;

    @ApiModelProperty ( "子项物料名称" )
    @TableField ( exist = false )
    private String chiMaterialName;

    @ApiModelProperty ( "父项物料名称" )
    @TableField ( exist = false )
    private String parMaterialName;

    @ApiModelProperty ( "子项单位名称" )
    @TableField ( exist = false )
    private String chiMeteringUnitName;

    @ApiModelProperty ( "父项单位名称" )
    @TableField ( exist = false )
    private String parMeteringUnitName;

    @ApiModelProperty ( "子项单位编码" )
    @TableField ( exist = false )
    private String childUnitCode;

    @ApiModelProperty ( "子项规格" )
    @TableField ( exist = false )
    private String model;

    @ApiModelProperty ( "父项规格" )
    @TableField ( exist = false )
    private String parModel;


}
